home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Nebula 1
/
Nebula One.iso
/
Financial
/
Stopwatch2.3
/
Source
/
ExpenseViewMgr.m
< prev
next >
Wrap
Text File
|
1995-06-12
|
2KB
|
93 lines
/*
* For legal stuff see the file COPYRIGHT
*/
#import "ExpenseViewMgr.h"
#import "ClientInspector.h"
#import "ExpenseEditor.h"
#import "Controller.h"
@interface ExpenseViewMgr(PRIVATE)
- (void)displayTotalExpenses;
- (void)displayClientExpenses;
- (float)totalExpenses;
@end
@implementation ExpenseViewMgr
- itemEditor
{
return [ExpenseEditor new];
}
/*
* Provide the add, delete and sort methods to invoke on ClientInfo objects
*/
- (SEL)addMethod
{
return @selector(addExpense:);
}
- (SEL)deleteMethod
{
return @selector(deleteExpense:);
}
- (SEL)sortMethod
{
return @selector(sortExpenses);
}
- info:(ClientInfo *)info itemAt:(int)position
{
return [info expenseAt:position];
}
- (int)itemCount:(ClientInfo *)info
{
return [info expenseCount];
}
- (void)displaySummary
{
[self displayClientExpenses];
[self displayTotalExpenses];
}
@implementation ExpenseViewMgr(PRIVATE)
- (float)totalExpenses
{
List *clientList = [[NXApp delegate] clientList];
int i, count = [clientList count];
float totalExp = 0.0;
for ( i = 0; i < count; i++ )
totalExp += [[clientList objectAt:i] totalExpenses];
return totalExp;
}
- (void)displayClientExpenses
{
char buf[20];
id info = [[ClientInspector sharedInstance] selectedClient];
if ( info ) {
sprintf( buf, "%.2f", [info totalExpenses] );
[clientExpensesField setStringValue:buf];
} else
[clientExpensesField setStringValue:""];
}
- (void)displayTotalExpenses
{
char buf[20];
sprintf( buf, "%.2f", [self totalExpenses] );
[totalExpensesField setStringValue:buf];
}
@end